import request from "../request";
import getOpenID from "../getOpenID";
import cache, { removeCache } from "../../utils/cache";

//领养信息
export const getAdopt = cache("adoptList", async function () {
  const data = await request("/adopt/");
  return data;
});

// 给用户添加领养信息
// 参数adopt 为用户想要领养的 id
export async function addUserAdopt(adopt) {
  // 获取用户的openid
  const { openid } = await getOpenID();
  try {
    const res = await request(
      "/user-adopt/",
      {
        user: openid,
        adopt,
      },
      "POST"
    );
    // 添加新的领养信息之后，把用户的领养信息的缓存清除掉
    removeCache("userAdoptList");
    return res;
  } catch (error) {
    return Promise.reject(e);
  }
}

// 获取用户的领养信息
export const getUserAdopt = cache("userAdoptList", async () => {
  //  获取openid
  const { openid } = await getOpenID();
  try {
    // 获取用户领养的信息
    const res = await request("/user-adopt/", {
      openid,
    });
    //  获取领养信息
    const adoptList = await getAdopt();

    // 把用户领养信息和 领养信息拼接起来，形成一个新的数组
    const userAdoptList = res.map((item) => {
      const adopt = adoptList.find((adopt) => adopt.id === item.adopt);
      return { ...item, ...adopt };
    });

    // 返回完整的用户领养信息的数组
    return userAdoptList;
  } catch (e) {
    return undefined;
  }
});
